package de.vocabulary.client.service;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;

import de.vocabulary.shared.model.LanguageModule;
import de.vocabulary.shared.model.Vocable;

public interface VocabularyServiceAsync {

	void getVocabularyList(AsyncCallback<List<Vocable>> callback);

	void storeVocabularyList(List<Vocable> vocabulary,
			AsyncCallback<Void> callback);

	void getTranslations(List<Vocable> vocabulary,
			AsyncCallback<List<List<String>>> callback);

	void getTranslation(String wordToBeTranslated, AsyncCallback<List<String>> callback);

	void getLanguages(AsyncCallback<List<String>> callback);

	void getLanguageModule(String name, AsyncCallback<LanguageModule> callback);

	void getDefaultLanguageModule(AsyncCallback<LanguageModule> callback);

	void getLessons(AsyncCallback<List<String>> callback);

	void setParametersAndGetFirstVocable(String lesson,
			int amountVocabulary, AsyncCallback<Vocable> callback);

	void submitFeedbackAndGetNextVocable(boolean correct, boolean ignore,
			AsyncCallback<Vocable> callback);

}
